{namespace BlocklyGames.soy}

/**
 * This is a Closure Template.
 *
 * To regenerate just English, run:
 *   make common-en
 *
 * To regenerate all languages, run:
 *   make languages
 */

/**
 * All messages to be translated.
 */
{template .messages}
  <div style="display: none">
    // Common messages used in multiple applications are defined here.
    // The applications' template.soy file may also contain msg statements
    // with the same "meaning" value.  The "desc" value must be set to "IBID"
    // (case-insensitive) or identical to the one in this file (not
    // recommended), or an error will be raised during generation of qqq.json.
    // The source-language text in the applications' definitions is ignored.
    <span id="Games_name">{msg meaning="Games.name" desc="The project name."}Blockly Games{/msg}</span>
    <span id="Games_puzzle">{{msg meaning="Games.puzzle" desc="title - Specifies that this is Blockly's '''Puzzle''' game.  Use the word for a jigsaw puzzle.\n{lb}{lb}Identical|Puzzle{rb}{rb}"}}Puzzle{{/msg}}</span>
    <span id="Games_maze">{{msg meaning="Games.maze" desc="title - Specifies that this is Blockly's '''Maze''' game.\n{lb}{lb}Identical|Maze{rb}{rb}"}}Maze{{/msg}}</span>
    <span id="Games_bird">{{msg meaning="Games.bird" desc="title - Specifies that this is Blockly's '''Bird''' game.\n{lb}{lb}Identical|Bird{rb}{rb}"}}Bird{{/msg}}</span>
    <span id="Games_turtle">{{msg meaning="Games.turtle" desc="title - Specifies that this is Blockly's '''Turtle''' game.\n{lb}{lb}Identical|Turtle{rb}{rb}"}}Turtle{{/msg}}</span>
    <span id="Games_movie">{{msg meaning="Games.movie" desc="title - Specifies that this is Blockly's '''Movie''' game.\n{lb}{lb}Identical|Movie{rb}{rb}"}}Movie{{/msg}}</span>
    <span id="Games_music">{{msg meaning="Games.music" desc="title - Specifies that this is Blockly's '''Music''' game.\n{lb}{lb}Identical|Music{rb}{rb}"}}Music{{/msg}}</span>
    <span id="Games_pondTutor">{{msg meaning="Games.pondTutor" desc="title - Specifies that this is Blockly's '''Pond Tutor''' game.  It is a series of lessons or practice levels to allow users to play the more advanced '''Pond''' game (in your language: '''{lb}{lb}:Blockly:Games.pond/{lb}{lb}RelevantLanguage{rb}{rb}{rb}{rb}''')."}}Pond Tutor{{/msg}}</span>
    <span id="Games_pond">{{msg meaning="Games.pond" desc="title - Specifies that this is Blockly's '''Pond''' game.\n{lb}{lb}Identical|Pond{rb}{rb}"}}Pond{{/msg}}</span>
    <span id="Games_genetics">{{msg meaning="Games.genetics" desc="title - Specifies that this is Blockly's '''Genetics''' game.\n{lb}{lb}Identical|Genetics{rb}{rb}"}}Genetics{{/msg}}</span>

    <span id="Games_linesOfCode1">{msg meaning="Games.linesOfCode1" desc="alert - Displayed when a level is complete."}You solved this level with 1 line of JavaScript:{/msg}</span>
    <span id="Games_linesOfCode2">{msg meaning="Games.linesOfCode2" desc="alert - Displayed when a level is complete.  %1 is an integer greater than 1."}You solved this level with %1 lines of JavaScript:{/msg}</span>
    <span id="Games_nextLevel">{msg meaning="Games.nextLevel" desc="alert - This is displayed when the user solves the level, inviting them to procede to the next level of difficulty.  %1 is an integer greater than 1."}Are you ready for level %1?{/msg}</span>
    <span id="Games_finalLevel">{msg meaning="Games.finalLevel" desc="alert - This is displayed when the user solves the most difficult level and is going to go to the next game."}Are you ready for the next challenge?{/msg}</span>
    <span id="Games_submitTitle">{{msg meaning="Games.submitTitle" desc="Label in front of a field where the user is requested to type a title for their work.\n{lb}{lb}Identical|Title{rb}{rb}"}}Title:{{/msg}}</span>

    // Buttons and tooltips.
    <span id="Games_linkTooltip">{msg meaning="Games.linkTooltip" desc="tooltip - Pressing this button will cause the current program to be saved and for a URL to be shown to later retrieve it."}Save and link to blocks.{/msg}</span>
    <span id="Games_runTooltip">{msg meaning="Games.runTooltip" desc="tooltip - Pressing this button runs the computer program the user has written."}Run the program you wrote.{/msg}</span>
    <span id="Games_runProgram">{msg meaning="Games.runProgram" desc="button label - Pressing this button runs the computer program the user has written."}Run Program{/msg}</span>
    <span id="Games_resetTooltip">{msg meaning="Games.resetTooltip" desc="tooltip - Pressing this button restores the player to the start position and enables the user's program to be run again."}Stop the program and reset the level.{/msg}</span>
    <span id="Games_resetProgram">{{msg meaning="Games.resetProgram" desc="button label - Pressing this button causes the output of the program to be erased but does not delete the user's program).\n{lb}{lb}Identical|Reset{rb}{rb}"}}Reset{{/msg}}</span>
    <span id="Games_help">{{msg meaning="Games.help" desc="button label - Pressing this button shows help information.\n{lb}{lb}Identical|Help{rb}{rb}"}}Help{{/msg}}</span>
    <span id="Games_dialogOk">{{msg meaning="Games.dialogOk" desc="button label - Pressing this button closes help information.\n{lb}{lb}Identical|OK{rb}{rb}"}}OK{{/msg}}</span>
    <span id="Games_dialogCancel">{{msg meaning="Games.dialogCancel" desc="button label - Pressing this button cancels a proposed action.\n{lb}{lb}Identical|Cancel{rb}{rb}"}}Cancel{{/msg}}</span>

    // Categories.  Games can use these names or their own.
    <span id="Games_catLogic">{{msg meaning="Games.catLogic" desc="category - Blocks related to [https://github.com/google/blockly/wiki/Logic logic].\n{lb}{lb}Identical|Logic{rb}{rb}"}}Logic{{/msg}}</span>
    <span id="Games_catLoops">{{msg meaning="Games.catLoops" desc="category - Blocks related to [https://en.wikipedia.org/wiki/Control_flow#Loops loops].\n{lb}{lb}Identical|Loops{rb}{rb}"}}Loops{/msg}</span>
    <span id="Games_catMath">{{msg meaning="Games.catMath" desc="category - Blocks related to mathematics.\n{lb}{lb}Identical|Math{rb}{rb}"}}Math{{/msg}}</span>
    <span id="Games_catText">{{msg meaning="Games.catText" desc="category - Blocks related to [https://github.com/google/blockly/wiki/Text text processing].\n{lb}{lb}Identical|Text{rb}{rb}"}}Text{{/msg}}</span>
    <span id="Games_catLists">{{msg meaning="Games.catLists" desc="category - Blocks related to [https://github.com/google/blockly/wiki/Lists lists].\n{lb}{lb}Identical|List{rb}{rb}"}}Lists{{/msg}}</span>
    <span id="Games_catColour">{{msg meaning="Games.catColour" desc="category - Blocks related to [https://github.com/google/blockly/wiki/Colour colour].\n{lb}{lb}Identical|Color{rb}{rb}"}}Colour{{/msg}}</span>
    <span id="Games_catVariables">{{msg meaning="Games.catVariables" desc="category - Blocks related to [https://github.com/google/blockly/wiki/Variables variables].\n{lb}{lb}Identical|Variables{rb}{rb}"}}Variables{{/msg}}</span>
    <span id="Games_catProcedures">{{msg meaning="Games.catProcedures" desc="category - Blocks related to [https://en.wikipedia.org/wiki/Subroutine defining or using procedures/functions].\n{lb}{lb}Identical|Functions{rb}{rb}"}}Functions{/msg}</span>

    // Messages related to loading/storing user programs.
    <span id="Games_httpRequestError">{msg meaning="Games.httpRequestError" desc="alert - The URL is invalid or a server error occurred.  This message will be followed by technical information useful to engineers trying to understand the problem."}There was a problem with the request.{/msg}</span>
    <span id="Games_linkAlert">{msg meaning="Games.linkAlert" desc="alert - After the user has pressed a button to save his/her program, this provides the URL (%1) to retrieve the program.  The characters '\n\n' indicate that a blank line will be displayed before the URL (in English).  Leave those in unless you move %1 to the beginning or middle of the text, in which case you should use your judgment about where blank lines would be most useful.\n\nParameters:\n* %1 - URL of saved program."}Share your blocks with this link:\n\n%1{/msg}</span>
    <span id="Games_hashError">{{msg meaning="Games.hashError" desc="alert - A request to retrieve a stored program does not have a valid URL. %1 is the invalid portion of the URL."}}Sorry, '%1' doesn't correspond with any saved program.{{/msg}}</span>
    <span id="Games_xmlError">{msg meaning="Games.xmlError" desc="alert - There was a problem loading a file previously saved by the user.  The most likely reason for the problem is that it was created with an earlier, incompatible version of Blockly.  This message will be followed by technical information useful to engineers trying to understand the problem."}Could not load your saved file. Perhaps it was created with a different version of Blockly?{/msg}</span>
    <span id="Games_submitted">{msg meaning="Games.submitted" desc="alert - After the user has submitted his/her program to the gallery, it must wait for approval.  Please make this message funny!"}Thank you for this program!  If our staff of trained monkeys like it, they will publish it to the gallery within a couple of days.{/msg}</span>

    // Default variable names.
    <span id="Games_listVariable">{{msg meaning="Games.listVariable" desc="variable name - Default [https://github.com/google/blockly/wiki/Variables variable] representing a [https://github.com/google/blockly/wiki/Lists list].  This should be a single word, preferably short.\n{lb}{lb}Identical|List{rb}{rb}"}}list{{/msg}}</span>
    <span id="Games_textVariable">{{msg meaning="Games.textVariable" desc="variable name - Default [https://github.com/google/blockly/wiki/Variables variable] representing a [https://github.com/google/blockly/wiki/Text piece of text].  This should be a single word, preferably short.\n{lb}{lb}Identical|Text{rb}{rb}"}}text{{/msg}}</span>

    <span id="Games_breakLink">{msg meaning="Games.breakLink" desc="Warning dialog. Options are 'OK' and 'Cancel'."}Once you start editing JavaScript, you can't go back to editing blocks. Is this OK?{/msg}</span>
    <span id="Games_blocks">{{msg meaning="Games.blocks" desc="Label on a tab that contains blocks editor.\n{lb}{lb}Identical|Block{rb}{rb}"}}Blocks{{/msg}}</div>
  </div>
{/template}

/**
 * Top toolbar for page
 * @param appName Name of application.
 * @param levelLinkSuffix Any extra parameters for links.
 * @param hasLinkButton Whether the page has a link button.
 * @param hasHelpButton Whether the page has a help button.
 * @param farLeftHtml Additional content to add to farLeft toolbar.
 */
{template .headerBar private="true"}
  <table width="100%">
    <tr>
      <td>
        <h1>
          {call .titleSpan}
            {param appName: $appName /}
          {/call}
          {if $ij.level}
            {call .levelLinks}
              {param suffix}{if $levelLinkSuffix}{$levelLinkSuffix}{/if}{/param}
            {/call}
          {/if}
        </h1>
      </td>
      <td id="header_cta" class="farSide">
        <select id="languageMenu"></select>
        {if $hasLinkButton}
          &nbsp;
          <button id="linkButton"
                  title="{msg meaning="Games.linkTooltip" desc="IBID"}Save and link to blocks.{/msg}">
            <img src="common/1x1.gif" class="link icon21">
          </button>
        {/if}
        {if $hasHelpButton}
          &nbsp;
          <button id="helpButton">
            {{msg meaning="Games.help" desc="IBID"}}Help{{/msg}}
          </button>
        {/if}
        {if $farLeftHtml}
          &nbsp;
          {$farLeftHtml |noAutoescape}
        {/if}
      </td>
    </tr>
  </table>
{/template}

/**
 * Print the title span (Blockly Games : AppName).
 * @param appName Name of application.
 */
{template .titleSpan private="true"}
  <span id="title">
    {if $ij.html}
      <a href="index.html?lang={$ij.lang}">
    {else}
      <a href="./?lang={$ij.lang}">
    {/if}
      {msg meaning="Games.name" desc="IBID"}Blockly Games{/msg}
    </a>
    {sp}:{sp}
    {$appName}
  </span>
{/template}

/**
 * List of links to other levels.
 * @param suffix Any extra parameters for links.
 */
{template .levelLinks private="true"}
  {sp}&nbsp;{sp}
  {for $i in range(1, $ij.maxLevel + 1)}
    {let $url}
      ?lang={$ij.lang}&level={$i}
      {if $suffix}
        &{$suffix}
      {/if}
    {/let}
    {sp}
    {if $i == $ij.level}
      <span class="level_number level_done" id="level{$i}">{$i}</span>
    {elseif $i == $ij.maxLevel}
      <a class="level_number" id="level{$i}" href="{$url}">{$i}</a>
    {else}
      <a class="level_dot" id="level{$i}" href="{$url}"></a>
    {/if}
  {/for}
{/template}

/**
 * Dialogs.
 */
{template .dialog private="true"}
  <div id="dialogShadow" class="dialogAnimate"></div>
  <div id="dialogBorder"></div>
  <div id="dialog"></div>
{/template}

/**
 * Done dialog.
 */
{template .doneDialog private="true"}
  <div id="dialogDone" class="dialogHiddenContent">
    <div style="font-size: large; margin: 1em;">{{msg meaning="Games.congratulations" desc="alert - This is displayed when the user solves the level.\n{lb}{lb}Identical|Congratulation{rb}{rb}"}}Congratulations!{{/msg}}</div>
    <div id="dialogLinesText" style="font-size: large; margin: 1em;"></div>
    <pre id="containerCode"></pre>
    <div id="dialogDoneText" style="font-size: large; margin: 1em;"></div>
    <div id="dialogDoneButtons" class="farSide" style="padding: 1ex 3ex 0">
      <button id="doneCancel">
        {{msg meaning="Games.dialogCancel" desc="IBID"}}Cancel{{/msg}}
      </button>
      <button id="doneOk" class="secondary">
        {{msg meaning="Games.dialogOk" desc="IBID"}}OK{{/msg}}
      </button>
    </div>
  </div>
{/template}

/**
 * Abort dialog.
 */
{template .abortDialog private="true"}
  <div id="dialogAbort" class="dialogHiddenContent">
    {msg meaning="Games.helpAbort" desc="callout - This dialog gives the user the option to skip this level."}
      This level is extremely difficult. Would you like to skip it and go onto the next game? You can always come back later.
    {/msg}
    <div class="farSide" style="padding: 1ex 3ex 0">
      <button id="abortCancel">
        {{msg meaning="Games.dialogCancel" desc="IBID"}}Cancel{{/msg}}
      </button>
      <button id="abortOk" class="secondary">
        {{msg meaning="Games.dialogOk" desc="IBID"}}OK{{/msg}}
      </button>
    </div>
  </div>
{/template}

/**
 * Storage dialog.
 */
{template .storageDialog private="true"}
  <div id="dialogStorage" class="dialogHiddenContent">
    <div id="containerStorage"></div>
    {call BlocklyGames.soy.ok /}
  </div>
{/template}

/**
 * OK button for dialogs.
 */
{template .ok private="true"}
  <div class="farSide" style="padding: 1ex 3ex 0">
    <button class="secondary" onclick="BlocklyDialogs.hideDialog(true)">
      {{msg meaning="Games.dialogOk" desc="IBID"}}OK{{/msg}}
    </button>
  </div>
{/template}
